//#define  _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//#include <unordered_map>
//#include <string>
//using namespace std;
//int n, m, l;
//string s, t;
//int ret = 0;
//int sum = 0;
//int tmp = 0;
//unordered_map<char, vector<int>> map1;
//void dfs(int cur, int pos)
//{
//	if (sum > l)
//		return;
//	auto e = map1[t[pos]];
//	for (auto index : e)
//	{
//		tmp++;
//		sum += abs(index - cur);
//		if (sum <= l)
//			ret = max(ret, tmp);
//		dfs(index, pos + 1);
//		sum -= abs(index - cur);
//		tmp--;
//	}
//}
//int main()
//{
//	cin >> n >> m >> l;
//	s.resize(n);
//	cin >> s;
//	t.resize(m);
//	cin >> t;
//	for (int i = 0; i < n; i++)
//		map1[s[i]].push_back(i);
//	int result = 0;
//	for (int i = 0; i < n; i++)
//	{
//		ret = 0;
//		tmp = 0;
//		sum = 0;
//		dfs(i, 0);
//		result = max(result, ret);
//	}
//	cout << result << endl;
//	return 0;
//}
//
///*
//
//3 6 5
//abc
//acbbac
//*/